home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Chat & Communication / Digsby build 37 / digsby_setup.exe / lib / repr.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2008-10-13  |  5KB  |  160 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. __all__ = [
  5.     'Repr',
  6.     'repr']
  7. import __builtin__
  8. from itertools import islice
  9.  
  10. class Repr:
  11.     
  12.     def __init__(self):
  13.         self.maxlevel = 6
  14.         self.maxtuple = 6
  15.         self.maxlist = 6
  16.         self.maxarray = 5
  17.         self.maxdict = 4
  18.         self.maxset = 6
  19.         self.maxfrozenset = 6
  20.         self.maxdeque = 6
  21.         self.maxstring = 30
  22.         self.maxlong = 40
  23.         self.maxother = 20
  24.  
  25.     
  26.     def repr(self, x):
  27.         return self.repr1(x, self.maxlevel)
  28.  
  29.     
  30.     def repr1(self, x, level):
  31.         typename = type(x).__name__
  32.         if ' ' in typename:
  33.             parts = typename.split()
  34.             typename = '_'.join(parts)
  35.         
  36.         if hasattr(self, 'repr_' + typename):
  37.             return getattr(self, 'repr_' + typename)(x, level)
  38.         else:
  39.             s = __builtin__.repr(x)
  40.             if len(s) > self.maxother:
  41.                 i = max(0, (self.maxother - 3) // 2)
  42.                 j = max(0, self.maxother - 3 - i)
  43.                 s = s[:i] + '...' + s[len(s) - j:]
  44.             
  45.             return s
  46.  
  47.     
  48.     def _repr_iterable(self, x, level, left, right, maxiter, trail = ''):
  49.         n = len(x)
  50.         if level <= 0 and n:
  51.             s = '...'
  52.         else:
  53.             newlevel = level - 1
  54.             repr1 = self.repr1
  55.             pieces = [ repr1(elem, newlevel) for elem in islice(x, maxiter) ]
  56.             s = ', '.join(pieces)
  57.             if n == 1 and trail:
  58.                 right = trail + right
  59.             
  60.         return '%s%s%s' % (left, s, right)
  61.  
  62.     
  63.     def repr_tuple(self, x, level):
  64.         return self._repr_iterable(x, level, '(', ')', self.maxtuple, ',')
  65.  
  66.     
  67.     def repr_list(self, x, level):
  68.         return self._repr_iterable(x, level, '[', ']', self.maxlist)
  69.  
  70.     
  71.     def repr_array(self, x, level):
  72.         header = "array('%s', [" % x.typecode
  73.         return self._repr_iterable(x, level, header, '])', self.maxarray)
  74.  
  75.     
  76.     def repr_set(self, x, level):
  77.         x = _possibly_sorted(x)
  78.         return self._repr_iterable(x, level, 'set([', '])', self.maxset)
  79.  
  80.     
  81.     def repr_frozenset(self, x, level):
  82.         x = _possibly_sorted(x)
  83.         return self._repr_iterable(x, level, 'frozenset([', '])', self.maxfrozenset)
  84.  
  85.     
  86.     def repr_deque(self, x, level):
  87.         return self._repr_iterable(x, level, 'deque([', '])', self.maxdeque)
  88.  
  89.     
  90.     def repr_dict(self, x, level):
  91.         n = len(x)
  92.         if n == 0:
  93.             return '{}'
  94.         
  95.         if level <= 0:
  96.             return '{...}'
  97.         
  98.         newlevel = level - 1
  99.         repr1 = self.repr1
  100.         pieces = []
  101.         for key in islice(_possibly_sorted(x), self.maxdict):
  102.             keyrepr = repr1(key, newlevel)
  103.             valrepr = repr1(x[key], newlevel)
  104.             pieces.append('%s: %s' % (keyrepr, valrepr))
  105.         
  106.         if n > self.maxdict:
  107.             pieces.append('...')
  108.         
  109.         s = ', '.join(pieces)
  110.         return '{%s}' % (s,)
  111.  
  112.     
  113.     def repr_str(self, x, level):
  114.         s = __builtin__.repr(x[:self.maxstring])
  115.         if len(s) > self.maxstring:
  116.             i = max(0, (self.maxstring - 3) // 2)
  117.             j = max(0, self.maxstring - 3 - i)
  118.             s = __builtin__.repr(x[:i] + x[len(x) - j:])
  119.             s = s[:i] + '...' + s[len(s) - j:]
  120.         
  121.         return s
  122.  
  123.     
  124.     def repr_long(self, x, level):
  125.         s = __builtin__.repr(x)
  126.         if len(s) > self.maxlong:
  127.             i = max(0, (self.maxlong - 3) // 2)
  128.             j = max(0, self.maxlong - 3 - i)
  129.             s = s[:i] + '...' + s[len(s) - j:]
  130.         
  131.         return s
  132.  
  133.     
  134.     def repr_instance(self, x, level):
  135.         
  136.         try:
  137.             s = __builtin__.repr(x)
  138.         except Exception:
  139.             return '<%s instance at %x>' % (x.__class__.__name__, id(x))
  140.  
  141.         if len(s) > self.maxstring:
  142.             i = max(0, (self.maxstring - 3) // 2)
  143.             j = max(0, self.maxstring - 3 - i)
  144.             s = s[:i] + '...' + s[len(s) - j:]
  145.         
  146.         return s
  147.  
  148.  
  149.  
  150. def _possibly_sorted(x):
  151.     
  152.     try:
  153.         return sorted(x)
  154.     except Exception:
  155.         return list(x)
  156.  
  157.  
  158. aRepr = Repr()
  159. repr = aRepr.repr
  160.